#include <string.h>
class Nod;

class Functie
{
    protected:
        char *expresie;/*expresia introdusa de utilizator*/
        Nod *radacina;
        Nod *creezArbore(int linf, int lsup);/*creaza arborele asociat expresiei*/
        static void verificPrecedenta(int newPrec, int newPoz, int *oldPrec, int *oldPoz);
    public:
        Functie(char *Expresie);
        ~Functie();

        long double calculezValoare(long double x);/*returneaza valoarea functiei in punctul x*/
        char *toString();/*converteste arborele in o expresie char **/
        char *derivata();/*derivata simbolica*/
        long double calculezDerivata(long double x); /*val derivatei in x*/


        static int fitY(long double rap, long double ymin, long double y, int limita);
};
